linux同步文件并删除,使用rsync 的 |
您所在的位置:网站首页 › rsync 删除源不存在的 › linux同步文件并删除,使用rsync 的 |
最近在处理策划资源文件的时候需要将目录A的文件全部同步到目录B的文件,并且把目录B内多余的文件全部删除掉。所以,就想到了使用rsync的--delete参数来实现功能。 创建示例如下: $ mkdir {dirA,dirB} //创建两个测试目录 //分别在两个目录创建相应的文件 $ touch dirA/{fileA1.txt,fileA2.txt,fileA3.txt} $ touch dirB/{fileA1.txt,fileA2.txt,fileA3.txt,fileB1.txt,fileB2.txt,fileB3.txt} 1)将dirA的所有文件同步到dirB内,并保留文件的属主,属组,文件权限等信息。 $ rsync -avz dirA/ dirB/ sending incremental file list ./ fileA1.txt fileA2.txt fileA3.txt sent 199 bytes received 72 bytes 542.00 bytes/sec total size is 0 speedup is 0.00 2)将dirA的所有文件同步到dirB内,并删除dirB内多余的文件 $ rsync -avz --delete dirA/ dirB/ sending incremental file list ./ deleting fileB3.txt deleting fileB2.txt deleting fileB1.txt fileA1.txt fileA2.txt fileA3.txt sent 203 bytes received 72 bytes 550.00 bytes/sec total size is 0 speedup is 0.00 3)将dirA的所有文件同步到dirB,但是在dirB内除了fileB3.txt这个文件不删之外,其他的都删除。 $ rsync -avz --delete --exclude "fileB3.txt" dirA/ dirB/ sending incremental file list ./ deleting fileB2.txt deleting fileB1.txt fileA1.txt fileA2.txt fileA3.txt sent 203 bytes received 72 bytes 550.00 bytes/sec total size is 0 speedup is 0.00 4)将dirA目录内的fileA1.txt和fileA2.txt不同步到dirB目录内。 $ rsync -avz --exclude="fileA1.txt" --exclude="fileA2.txt" dirA/ dirB/ sending incremental file list fileA3.txt sent 106 bytes received 31 bytes 274.00 bytes/sec total size is 0 speedup is 0.00 5) 将dirA目录内的fileA1.txt和fileA2.txt不同步到dirB目录内,并且在dirB目录内删除多余的文件。 $ rsync -avz --exclude="fileA1.txt" --exclude="fileA2.txt" --delete dirA/ dirB/ sending incremental file list deleting fileB3.txt deleting fileB2.txt deleting fileB1.txt fileA3.txt sent 106 bytes received 31 bytes 274.00 bytes/sec total size is 0 speedup is 0.00 6)将dirA目录内的fileA1.txt和fileA2.txt不同步到dirB目录内,并且在dirB目录内删除多余的文件,同时,如果dirB内有fileA2.txt和fileA1.txt这两个被排除同步的文件,仍然将其删除。 $ rsync -avz --exclude="fileA1.txt" --exclude="fileA2.txt" --delete-excluded dirA/ dirB/ sending incremental file list ./ deleting fileB3.txt deleting fileB2.txt deleting fileB1.txt deleting fileA2.txt deleting fileA1.txt fileA3.txt sent 109 bytes received 34 bytes 286.00 bytes/sec total size is 0 speedup is 0.00 这里可以看到只有fileA3.txt被同步到dirB目录内,同时dirB目录内的fileA1.txt和fileA2.txt两个被过滤的文件也被删除掉了。 这里分享一下学习经验,学一个东西不要总是很被动的去学习它有多少功能,要根据自己的实际应用场景来选择自己需要的功能。这样才能印象深刻。 Rsync 的详细介绍:请点这里 Rsync 的下载地址:请点这里 推荐阅读: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |